/*
 * TablaDefiniciones.cpp
 */

#include "TablaDefiniciones.h"

TablaDefiniciones::TablaDefiniciones() {
	this->tabla.clear();
}

bool TablaDefiniciones::agregarDefinicion(const std::string &nombDef,
		const std::string &valorDef) {
	// Verifico longitudes max permitidas y que no exista
	if(	nombDef.length() <= LONG_MAX_NOMBRE_DEFINE &&
		valorDef.length() <= LONG_MAX_VALOR_DEFINE &&
		this->tabla.find(nombDef) == this->tabla.end()) {
		// Agrego la definicion a la tabla
		this->tabla[nombDef] = valorDef;
		return true;
	}
	return false;
}

bool TablaDefiniciones::existeDefinicion(const std::string &defBuscada) const {
	return (this->tabla.find(defBuscada) != this->tabla.end());
}

bool TablaDefiniciones::obtenerDefinicion(std::string &valorDef,
		const std::string &defBuscada) const {
	tItTabla it = this->tabla.find(defBuscada);
	if(it != this->tabla.end()) {
		valorDef.assign(it->second);
		return true;
	}
	return false;
}
